package mid.序列问题.单调递增的数字;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 单调递增的数字
 * @date 2022/11/23 14:10
 */
public class Demo738 {
    public static void main(String[] args) {
        int i = monotoneIncreasingDigits(10);
        System.out.println(i);
    }
    public static int monotoneIncreasingDigits(int n) {
        //转成字符数组
        String s = String.valueOf(n);
        char[] chars = s.toCharArray();
        int stop=chars.length;
        //从后往前遍历简单得多
        for (int i = chars.length-1; i > 0; i--) {
            //当前位置小于数值上一个位置的时候，前一个位置大小减去1，记录前一个位置index,index后面的数字都改成9
            if(chars[i]<chars[i-1]){
                chars[i-1]=--chars[i-1];
                stop=i-1;
            }
        }
        for (int i = stop+1; i < chars.length; i++) {
            chars[i]='9';
        }
        return Integer.valueOf(new String(chars));

    }


}
